package org.hilo.boot.core;

import org.hilo.boot.core.exception.AppException;
import org.jretty.apibase.IMsg;
import org.jretty.apibase.MsgBase;

/**
 * 包装给定的IMsg，但是使用特殊的code：
 * @author zollty
 */
public class RefMsg implements IMsg {

    private final String code;
    private final IMsg msg;

    public RefMsg() {
        this(MsgBase.OMIT_SYSTEM_ERR);
    }

    public RefMsg(IMsg msg) {
        this.code = AppException.newCode(null);
        if (msg == null) {
            msg = MsgBase.OMIT_SYSTEM_ERR;
        }
        this.msg = msg;
    }

    public RefMsg(IMsg msg, String specificCode) {
        this.code = specificCode;
        if (msg == null) {
            msg = MsgBase.OMIT_SYSTEM_ERR;
        }
        this.msg = msg;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return msg.getMessage();
    }

    @Override
    public String getMessage(String locale) {
        return msg.getMessage(locale);
    }

    @Override
    public String toString(String locale) {
        return code + ": " + msg.getMessage(locale);
    }
    
}
